// page.js
const db = wx.cloud.database()
Page({
  data: {
    isHidden: true,
    avatarUrl: '',
    nickName: '',
    userInfo: null,
    popAnimate: '',
    oldAvatar: '',
    sessionFrom: 'page_index'
  },

  onShow() {
    const userInfo = wx.getStorageSync('userinfo')
    if (userInfo) {
      this.setData({ userInfo })
    }
  },

  // 获取用户头像
  getAvatar(e) {
    this.setData({ avatarUrl: e.detail.avatarUrl })
  },

  // 实时获取昵称
  getName(e) {
    this.setData({ nickName: e.detail.value.trim() })
  },

  // 显示登录弹窗
  showLogin() {
    this.setData({ 
      isHidden: false,
      popAnimate: 'slide-up 0.3s',
      avatarUrl: this.data.userInfo?.avatarUrl || '',
      nickName: this.data.userInfo?.nickName || ''
    })
  },

  // 退出登录
  logout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: res => {
        if (res.confirm) {
          this.setData({ userInfo: null })
          wx.removeStorageSync('userinfo')
        }
      }
    })
  },

  // 提交登录
  async submitLogin() {
    const { avatarUrl, nickName, oldAvatar } = this.data
    
    if (!avatarUrl) {
      wx.showToast({ title: '请选择头像', icon: 'none' })
      return
    }
    if (!nickName) {
      wx.showToast({ title: '请输入昵称', icon: 'none' })
      return
    }

    wx.showLoading({ title: '登录中...', mask: true })
    
    try {
      // 删除旧头像
      if (oldAvatar && oldAvatar !== avatarUrl) {
        await wx.cloud.deleteFile({ fileList: [oldAvatar] })
      }

      // 上传新头像
      const uploadRes = await wx.cloud.uploadFile({
        cloudPath: `avatars/${Date.now()}-${Math.random().toString(36).substr(2)}.png`,
        filePath: avatarUrl
      })

      // 构建用户数据
      const userData = {
        avatarUrl: uploadRes.fileID,
        nickName,
        lastLogin: db.serverDate()
      }

      // 查询当前用户是否存在
      const queryRes = await db.collection('User').get()
      
      if (queryRes.data.length > 0) {
        // 更新现有用户数据
        await db.collection('User').doc(queryRes.data[0]._id).update({
          data: userData
        })
        userData._id = queryRes.data[0]._id
      } else {
        // 创建新用户（自动添加_openid）
        const addRes = await db.collection('User').add({ data: userData })
        userData._id = addRes._id
      }

      // 更新本地数据
      wx.hideLoading()
      this.setData({ 
        userInfo: userData,
        isHidden: true,
        oldAvatar: uploadRes.fileID
      })
      wx.setStorageSync('userinfo', userData)
      this.handleLoginSuccess() //跳转逻辑
      
    } catch (err) {
      wx.hideLoading()
      wx.showToast({ title: '登录失败，请重试', icon: 'none' })
      console.error('登录错误:', err)
    }
  },

  // 关闭弹窗
  closePopup() {
    this.setData({ 
      popAnimate: 'slide-down 0.3s',
      isHidden: true 
    })
  },
  // 在my页面的登录成功回调中（如按钮点击事件）
  handleLoginSuccess() {
    // 获取存储的跳转信息
    const returnInfo = wx.getStorageSync('returnUrl');

    if (returnInfo) {
      wx.removeStorageSync('returnUrl');
    
      // 根据页面类型选择跳转方式
      if (returnInfo.isTab) {
        wx.switchTab({ url: returnInfo.path });
      } else {
        wx.reLaunch({ url: returnInfo.path });  // 改用reLaunch保证页面栈干净
      }
    }
  },

   // 处理收藏点击事件
  handleCollectionTap(e) {
    const type = e.currentTarget.dataset.type;
    console.log(type,'type');
    wx.navigateTo({
      url: `/pages/collectList/collectList?type=${type}`
    });
  },
  
  
  handleContact(e) {
    console.log(e)
  }
})